package com.gpframework.module.manufacture.domain.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import javax.validation.constraints.*;

import java.util.Date;
import java.math.BigDecimal;

/**
 * @ClassName GpProductionSchedulingAdd
 * @Author gpframework
 * @Date 2023-12-12
 * @Version 1.0.0
 * @Description 生产排单Add对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GpProductionSchedulingAdd {
    private static final long serialVersionUID = 1L;

    /** 品牌id */
    @ApiModelProperty("品牌id")
    private String brandId;

    /** 品牌名称 */
    @ApiModelProperty("品牌名称")
    private String brandName;

    /** 缺货报库存申请表id */
    @Excel(name = "缺货报库存申请表id")
    private Long productionApplicationId;

    /** 做货明细表id */
    @Excel(name = "做货明细表id")
    private Long productionDetailsId;

    /** 订单号 */
    @ApiModelProperty("订单号")
    private String sn;

    /** 仓点 */
    @ApiModelProperty("仓点")
    private String warehousePoint;

    /** 染厂id */
    @ApiModelProperty("染厂id")
    private Long dyeingFactoryId;

    /** 染厂名称 */
    @ApiModelProperty("染厂名称")
    private String dyeingFactoryName;

    /** 胚布基础表id */
    @ApiModelProperty("胚布基础表id")
    private Long supplierGreyClothId;

    /** 供应商名称 */
    @ApiModelProperty("供应商名称")
    private String supplierName;

    /** 供应商胚布品名 */
    @ApiModelProperty("供应商胚布品名")
    private String supplierGreyClothName;

    /** 产品基础表id */
    @ApiModelProperty("产品基础表id")
    private Long produceProductId;

    /** 产品名 */
    @ApiModelProperty("产品名")
    private String productName;

    /** 颜色 */
    @ApiModelProperty("颜色")
    private String colour;

    /** 颜色对照表id */
    @ApiModelProperty("颜色对照表id")
    private Long colourComparisonId;

    /** 染厂色号（代码） */
    @ApiModelProperty("染厂色号（代码）")
    private String factoryColourCode;

    /** 数量（件数） */
    @ApiModelProperty("数量（件数）")
    private Integer quantity;

    /** 回货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("回货日期")
    private Date returnTime;

    /** 下单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("下单日期")
    private Date placeOrdersTime;

    /** 进仓日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("进仓日期")
    private Date warehouseEntryTime;

    /** 缸号 */
    @ApiModelProperty("缸号")
    private String dyeVatNo;

    /** 进仓重量 */
    @ApiModelProperty("进仓重量")
    private Long warehouseEntryWeight;

    /** 成品出仓重量 */
    @ApiModelProperty("成品出仓重量")
    private Long warehouseExitWeight;

    /** 胚布进仓批次 */
    @ApiModelProperty("胚布进仓批次")
    private String warehouseEntryNo;

    /** 总重量 */
    @ApiModelProperty("总重量")
    private Long totalWeight;

    /** 剩余重量 */
    @ApiModelProperty("剩余重量")
    private Long residualWeight;

    /** 时长 */
    @ApiModelProperty("时长")
    private String duration;

    /** 货期程度 */
    @ApiModelProperty("货期程度")
    private String degreeOfDeliveryTime;

    /** 进度状态 */
    @ApiModelProperty("进度状态")
    private String progressStatus;

    /** 是否生成到货单 0否 1是 */
    @ApiModelProperty("是否生成到货单 0否 1是")
    private String deliveryNoteFlag;

    /** 申请人id */
    @ApiModelProperty("申请人id")
    private Long applicantId;

    /** 申请人名称 */
    @ApiModelProperty("申请人名称")
    private String applicantName;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("申请时间")
    private Date applicantTime;

    /** 跟单人id */
    @ApiModelProperty("跟单人id")
    private Long followUpId;

    /** 跟单人名称 */
    @ApiModelProperty("跟单人名称")
    private String followUpName;

    /** 跟单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("跟单时间")
    private Date followUpTime;

    /** 操作人id */
    @ApiModelProperty("操作人id")
    private Long operatorId;

    /** 操作人名称 */
    @ApiModelProperty("操作人名称")
    private String operatorName;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作时间")
    private Date operatorTime;

    /** 排序 */
    @ApiModelProperty("排序")
    private Integer sort;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;

    /** 操作人编号 */
    private String operatorNum;

    /**审批人名称 */
    private String examinName;


    @ApiModelProperty("染厂胚布品名")
    private String dyeingGreyClothName;


    /** 实际胚布用量 */
    @ApiModelProperty("实际胚布用量")
    private Integer actualGreyUsed;

    /** 胚布库存数量 */
    @ApiModelProperty("胚布库存数量")
    private Integer stockGreyNum;

    /** 胚布剩余数量 */
    @ApiModelProperty("胚布剩余数量")
    private Integer leaveGreyNum;

}
